home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Financial
/
RISK
/
Source
/
RanGen.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
1KB
|
52 lines
#import "RanGen.h"
#import <appkit/appkit.h>
#import <math.h>
#import <stdio.h>
#import <sys/time.h>
@implementation RanGen
// ----------------------------------------------------------------
+ new
{
long t;
int seed;
self = [super new];
time (&t);
seed = t; // is time-based!
// printf("RanGen: new random seed = %d\n",t);
srandom(seed);
return self;
}
// ----------------------------------------------------------------
// ran01: Linear congruential method based on
// the random() supplied by the C library.
// Allegedly random() is better than rand().
- (double) ran01
{
double aRand;
aRand = (double)random()/2147483648.0;
// printf("%lf\n",aRand);
return aRand;
} // end of ran01
// ----------------------------------------------------------------
- (int) lowInt: (int) lowestNumber highInt: (int) highestNumber
{
double r,t;
// integer arithmetic requires to add 1 to difference. If this
// is not done, the highest number is not included.
// for instance low=10, high=20. Then it has to be r=11, because
// random is never exactly equal to 1.
r = (double) highestNumber - (double) lowestNumber + 1;
t = r * [self ran01];
return lowestNumber + (int)t;
}
@end